<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>ajax操作的封装</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script>
 
</head>
<body>
  <div class="container">
    <h2 class="page-header">Promise 封装AJAX操作</h2>
    <button class="btn btn-primary" id="btn">点击发送AJAX</button>
  </div>
  <script>
    //接口地址  http://127.0.0.1:8080/request
    const btn = document.querySelector('#btn');
    btn.addEventListener('click',function(){
      const p = new Promise((resolve,reject)=>{
        //1.创建对象
        const xhr = new XMLHttpRequest();
        //2.初始化
        xhr.open("GET",'http://127.0.0.1:8080/api')
        //3.发送
        xhr.send();
        //4.处理响应结果
        xhr.onreadystatechange = function(){
          if(xhr.readyState === 4){
            //判断响应状态码
            if(xhr.status >=200 && xhr.status < 300){
              //控制台输出响应体
              resolve(xhr.response)
            }else{
              reject(xhr.status)
            }
          }
        }
      }).then(value=>{
        console.log(value);
      },error=>{
        console.log(error);
      })
    })
  </script>
  
</body>
</html>